home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1998 May
/
Macworld (1998-05).dmg
/
Shareware World
/
Comms & Internet
/
ProTERM_1.2.5.Install
/
ProTERM Mac1.2.5
/
PT Resources
/
PT Process URL
< prev
next >
Wrap
Text File
|
1996-07-13
|
2KB
|
116 lines
//
// this file should be located in the PT Resources folder
//
// version 1.0 - jan 17, 1996
//
//
// process url reference
//
FUNC main(STR kind, STR url, STR opt)
{
STR host,port,user,pass,upurl;
IF (kind == "CONF") {
parse_ncsa(url,&host,&port,&user,&pass);
telnet_to(host,port,user,pass);
RETURN(0);
}
IF ((STR_LEFT(url,1) == "<") && (STR_RIGHT(url,1) == ">")) {
url = STR_MID(url,1,STR_LEN(url)-2);
}
IF (STR_UPPER(STR_LEFT(url,4)) == "URL:") {
url = STR_MID(url,4);
}
upurl = STR_UPPER(url);
IF ((kind == "GURL") && (STR_LEFT(upurl,7) == "TELNET:")) {
parse_telnet(url,&host,&port,&user,&pass);
telnet_to(host,port,user,pass);
RETURN(0);
}
RETURN(0);
}
// parse telnet info from NCSA Telnet CONF file
FUNC parse_ncsa(STR file, STR host, STR port, STR user, STR pass)
{
INT fd;
STR name;
host = port = user = pass = "";
fd = F_OPEN(file,"RW");
IO_SCANF(fd,'name= "%s"^m',name);
IO_SCANF(fd,'host= "%s"^m',host);
IO_SCANF(fd,'port= %s^m',port);
F_CLOSE(fd);
F_DELETE(file);
RETURN(0);
}
// parse telnet info from url
FUNC parse_telnet(STR url, STR host, STR port, STR user, STR pass)
{
INT div;
user = pass = host = port = "";
div = STR_INDEX("://",url);
IF (div < 0) { RETURN(0) }
url = STR_MID(url,div+3);
div = STR_INDEX("@",url);
IF (div) {
user = STR_LEFT(url,div);
url = STR_MID(url,div+1);
div = STR_INDEX(":",user);
IF (div > 0) {
pass = STR_MID(user,div+1);
user = STR_LEFT(user,div);
}
}
host = url;
div = STR_INDEX(":",host);
IF (div > 0) {
port = STR_MID(host,div+1);
host = STR_LEFT(host,div);
}
IF (STR_RIGHT(host,1) == "/") {
host = STR_LEFT(host,STR_LEN(host)-1);
}
RETURN;
}
// telnet to a site
FUNC telnet_to(STR host, STR port, STR user, STR pass)
{
INT x;
STR file;
WHILE (1) {
file = ".PREF:PT Telnet URL";
IF (IS_FILE(file)) { BREAK }
file = FN_GETPATH(5)+"{Telnet}";
IF (IS_FILE(file)) { BREAK }
RETURN(-1);
}
x = NUM_STR(port);
IF (x == 0) { x = 23 }
port = STR_NUM(x);
UI_OPEN(file);
UI_SET("Phone Number",STR_FORMAT("%s,%s",host,port));
UI_SET("Term Window Name",host);
UI_SET("Close Window After Connect","1");
UI_MENU("File:Save");
UI_CLICK("Retry");
RETURN(0);
}